package com.moss.cloud.base.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moss.cloud.base.api.model.from.BaseFrom;
import com.moss.cloud.base.api.model.from.TenantFrom;
import com.moss.cloud.base.api.model.param.TenantPageParam;
import com.moss.cloud.base.api.model.vo.TenantInfoVO;
import com.moss.cloud.base.api.model.vo.TenantPageVO;
import com.moss.cloud.base.biz.model.SysTenant;

/**
 * 租户信息业务接口
 *
 * @author 瑾年
 * @date 2023年10月28日
 */
public interface ISysTenantService extends IService<SysTenant> {
    /**
     * 登录租户信息
     *
     * @return
     */
    TenantInfoVO tenantInfo();

    /**
     * 租户ID查询租户基本信息
     *
     * @param tenantId
     * @return
     */
    TenantInfoVO byTenantId(Long tenantId);

    /**
     * 用户ID查询租户基本信息
     *
     * @param userId
     * @return
     */
    SysTenant tenantInfoByUserId(Long userId);

    /**
     * 租户分页查询
     *
     * @return
     */
    IPage<TenantPageVO> tenantPage(TenantPageParam tenantPageParam);

    /**
     * 删除租户信息
     *
     * @param baseFrom
     * @return
     */
    Boolean removeTenant(BaseFrom baseFrom);

    /**
     * 启用，停用租户
     *
     * @param baseFrom
     * @return
     */
    Boolean disabledTenant(BaseFrom baseFrom);

    /**
     * 新增租户
     *
     * @param tenantFrom
     * @return
     */
    Boolean saveTenant(TenantFrom tenantFrom);

    /**
     * 更新租户信息
     *
     * @param tenantFrom
     * @return
     */
    Boolean updateTenant(TenantFrom tenantFrom);
}
